home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1993
/
Internet Info CD-ROM (Walnut Creek) (1993).iso
/
inet
/
internet-drafts
/
draft-ietf-pip-identifiers-01.txt
< prev
next >
Wrap
Text File
|
1993-03-03
|
18KB
|
518 lines
Network Working Group P. Tsuchiya
INTERNET-DRAFT Bellcore
January 1993
Pip Identifiers
Status of this Memo
This document is an Internet Draft. Internet Drafts are working
documents of the Internet Engineering Task Force (IETF), its Areas,
and its Working Groups. Note that other groups may also distribute
working documents as Internet Drafts).
Internet Drafts are draft documents valid for a maximum of six
months. Internet Drafts may be updated, replaced, or obsoleted by
other documents at any time. It is not appropriate to use Internet
Drafts as reference material or to cite them other than as a "working
draft" or "work in progress."
Please check the I-D abstract listing contained in each Internet
Draft directory to learn the current status of this or any other
Internet Draft.
Abstract
Pip is an internet protocol intended as the replacement for IP
version 4. The Pip header defines source and destination ID fields
whose primary function it is to identify the source and destination
of a Pip packet. While Pip systems treat the IDs as flat for the
purpose of identification, it is useful to have hierarchical
structure in the ID for other purposes, such as for doing a reverse
DNS lookup on the ID. This internet-draft defines the structure of
Pip IDs.
Acknowledgements
I want to thank John Curren and Bob Smart for their observations on
the need for administrative structure in Pip IDs that led to this
draft.
Pip WG, Expires July 1, 1993 [Page 1]
INTERNET-DRAFT Pip Identifiers January 1993
1. Changes From Previous Version
The major change to this version is in how IP addresses are encoded
in the Pip ID. Whereas before they were encoded in the ASN.1 nota-
tion (and thus spread over 5 octets), now they are always encoded in
the low-order 32 bits of the Pip ID.
In addition, code points were added for E.164 numbers, and for form-
ing Pip IDs that are only locally unique (for the sake of auto-
configuration).
2. Introduction
Pip is an internet protocol intended as the replacement for IP ver-
sion 4. The Pip header defines source and destination ID fields
whose function, in the context of host processing of Pip headers, is
to only identify the source and destination of a Pip packet. While
Pip systems treat the IDs as flat for the purpose of identification,
it is useful to have hierarchical structure in the ID for other pur-
poses, such as for doing a reverse DNS lookup on the ID. This
internet-draft defines the structure of Pip IDs.
Pip IDs have the following characteristics:
1. With well-known exceptions, they are globally unique binary
strings 8 octets in length.
2. They are hierarchically structured.
3. Each component of the hierarchy is contiguous, and each
hierarchical component is positioned in the Pip ID adjacent to
its parent and child components.
4. The hierarchical structure is self-describing. That is, the
hierarchical structure can be determined by examination of the
ID alone.
5. Pip IDs may be used for group identification, but such a Pip ID
is not self-describing as being a group Pip ID.
6. Certain Pip IDs are well-known and have local meaning, such as
Pip WG, Expires July 1, 1993 [Page 2]
INTERNET-DRAFT Pip Identifiers January 1993
"all routers on the subnet" and "this host".
Pip IDs are formed by a hierarchy of number authorities, each of
which is responsible for assigning the next lower level of the
hierarchy. While it is the intent that the hierarchical structure of
Pip IDs follow administrative hierarchy (versus, for instance, topo-
logical hierarchy), it is up to each number authority to determine
how the next level is assigned.
The top-level number authority for Pip IDs is the Internet Assigned
Number Authority (IANA).
3. Pip ID structure
Semantically, the Pip ID is a series of integers, with each integer
being hierarchically above the following one. For instance, the Pip
ID 12.96.4993.5 has four levels of hierarchy. The IANA assigns the
top-level (12). The number authority represented by the top-level
number 12 assigns the following level (96), and so on.
The encoding of a Pip ID is similar to (but not the same as) that of
the Object Identifier encoding in ASN.1. That is, it is encoded as a
series of (eight) octets, with the first bit of each octet indicating
whether the next octet is part of the same integer or a new integer.
If the first bit of the octet is 0, then it is the last octet of the
integer. If the first bit of the octet is 1, then the following
octet is part of the same integer.
For instance, the integer 127 is encoded as 01111111. The integer
128, however, is encoded as 10000001 00000000. The leading 1 in the
first octet indicates that the next octet is part of the same
integer. The leading 0 is the second octet indicates that it is the
final octet of the integer. The value 128 comes from concatinating
the seven least significant bits from each of the two octets.
3.1. Exceptions to the Above Rule
There are three exceptions to the above rule--padding octets, the "IP
Address Follows" octet, and the low order octet. These exceptions
are discussed here.
Pip WG, Expires July 1, 1993 [Page 3]
INTERNET-DRAFT Pip Identifiers January 1993
Padding
In encoded form, all Pip IDs are padded out to the full 8 octets.
The pad consists of a single octet of value 10000000 followed by 0 or
more octets of value 11111111. This is how the Pip ID encoding
differs from the ASN.1 Object Identifier encoding. In the ASN.1
encoding, an octet of 1000 0000 is illegal, because it represents a
"wasted" octet in the case where the string of octets is variable
length.
The reason that we do not pad with multiple octets of 10000000 is
because it would be ambiguous with one of the IP address encodings.
As another example, consider the Pip ID 12.96.4993.5. It is encoded
as:
12 00001100
96 01100000
4993 10100111 00000001
5 00000101
pad 10000000 11111111 11111111
The 12 and 96 take up one octet each. The 4993 is greater than 127
(largest 7-bit integer), but smaller than 16383 (largest 14-bit
integer), so it requires 2 octets. The 5 is the final digit. The
remaining 3 octets are padded with 10000000 followed by two octets of
11111111.
IP Address Follows
The second exception is for the case of embedding an IP address in
the Pip ID. This exception exists because embedding IP addresses in
Pip IDs is an integral part of transition to Pip, and a router will
need to extract IP addresses from Pip IDs on a packet by packet
basis. If we encode the IP address in the ASN.1 notation, then the
32-bit IP address gets spread over 40 bits of Pip ID, and a series of
shift, mask, and OR operations are required to extract the IP address
in its contiguous 32-bit form.
As a result, we allow the 32-bit IP address to be embedded in the Pip
ID in its contiguous form. For the sake of simplicity and effi-
ciency, we require that the IP address always be in the low order 32
bits of the Pip ID. In order that a Pip ID with an IP address be
self-describing as such, we specify that the octet preceeding the IP
address be 10000000. Note that this is also the "start of padding"
Pip WG, Expires July 1, 1993 [Page 4]
INTERNET-DRAFT Pip Identifiers January 1993
octet. However, if the remainder of the Pip ID really padding, then
it is followed by four octets of 11111111. However, an IP address of
all 1's is illegal, so 5 octets of padding cannot be mistaken for an
IP address.
Low Order Octet
Except for the case of an IP address, the values 10000001 - 11111110
in the low order octet do not make sense, because the "1" in the
indicates "more digits follow" when there are in fact no more digits.
Thus, the values 10000001 - 11111110 in the low order octet, except
for the IP address encoding, are illegal. In the future, these
values may be used to imply an extension of the Pip ID.
4. Assigned Top-level Pip ID Numbers
It is expected that the IANA will generally assign top-level Pip ID
numbers directly to organizations. This document, however, defines a
number of special, non-organizational assignments. These are for the
purposes of grandfathering existing numbering plans, and for delegat-
ing countries as second level assignment authorities.
The assignments below consume all of the 1-octet top-level numbers (0
- 127) and a small number of 2-octet top-level numbers (128 - 316 are
assigned of a possible maximum 2-octet number of 16383). Thus there
are approximately 16,000 2-octet and 2,000,000 3-octet top-level
numbers available for assignment directly to organizations.
Any of these 2- and 3-octet assignments allow the designated organi-
zation to form Pip IDs with IP addresses embedded. Any 4-octet or
greater assignment does not allow the designated organization to form
a Pip ID with an embedded IP address (except on an ad hoc basis).
Thus it is recommended that the IANA assign 2- and 3- octet numbers
to organizations for the forseeable. Since 2-octet numbers are at a
premium, it may be desirable to reserve these numbers and only assign
3-octet numbers, or to assign 2-octet numbers only to very large
organizations.
The following Pip ID assignments are defined:
Pip WG, Expires July 1, 1993 [Page 5]
INTERNET-DRAFT Pip Identifiers January 1993
4.1. IEEE 802 Address
An IEEE 802 address can be used to create a globally unique Pip ID.
Thus, anybody with an IEEE 802 address can use it to form a globally
unique Pip ID.
The format for an IEEE 802 Pip ID is:
1.IEEE802address
The top-level integer is value "1". The remainder of the Pip ID is a
single IEEE 802 address. Since the IEEE 802 address is 48 bits in
length, and since the remaining 7 octets only encode 49 bits, there
is no room for a third level of hierarchy.
4.2. Locally Unique IDs
During auto-configuration, it is necessary for a Pip host to be able
to construct a Pip ID that is with very high probability unique among
the systems that share a physical network with it. If the host has
an IEEE 802 interface, then it can form a Pip ID of the form
1.IEEE802address as described in the preceeding section. This Pip ID
is globally unique.
If, however, the host does not have a globally unique IEEE 802 number
with which to form a Pip ID, it can use (one of) its physical inter-
face address(es) to form a Pip ID that is unique for the systems on
the physical network (presuming that the physical addresses on the
network are unique among each other).
The format for this number is:
2.physicalAddress.randomNumber
The top-level integer is value "2". The next level integer is
created using the physicalAddress. The lowest level integer is a
randomly generated number truncated to fit within the space remaining
after the physical address. Thus, the Locally Unique Pip ID has
three levels of hierarchy.
Note that the 2.physicalAddress alone should be sufficient to insure
Pip WG, Expires July 1, 1993 [Page 6]
INTERNET-DRAFT Pip Identifiers January 1993
uniqueness on the local physical network. The random number, how-
ever, increases the probability that the number will be unique on the
local physical network and beyond.
4.3. CCITT E.164
A CCITT E.164 address can be used to create a globally unique Pip ID.
Thus, anybody with an E.164 address can use it to form a globally
unique Pip ID.
The format for an IEEE 802 Pip ID is:
3.flatE164number
4.flatE164number
The top-level integer is value "3" or "4". The reason that two top-
level assignments are required for E.164 is because the maximum pos-
sible E.164 number is 15 digits. To encode all 15 digit numbers in
binary requires 50 bits. Not including the high order octet, how-
ever, there are only 49 significant bits in the Pip ID. Thus, we
must "steal" the low order bit of the high order octet in order to
insure that all E.164 numbers can be encoded.
The algorithm for creating a Pip ID from an E.164 number is to form
the single integer flatE164number from the E.164 number (that is, the
contatination of country code and remaining digits). If
flatE164number integer is less than 2^49, then use the top-level
assignment of 3 followed by flatE164number. If, on the other hand,
flatE164number is greater than or equal to 2^49, then subtract 2^49
from flatE164number and use the top-level assignment of 4 followed by
the modified flatE164number.
The reverse of this is used to extract an E.164 from a Pip ID with a
top-level integer of 3 or 4.
4.4. Flat Well-Known IDs
Pip WG, Expires July 1, 1993 [Page 7]
INTERNET-DRAFT Pip Identifiers January 1993
There are any number of uses for identifying systems of a certain
type, rather than specific systems. For instance, an ID for "all
routers on the LAN" is useful for router discovery. This specifica-
tion defines the following well-known Pip IDs. These well-known Pip
IDs consist of a single hierarchy level (the top-level), but are so
large that only one level of hierarchy is possible.
Any Router
Decimal Notation = 2^56 - 1
Pip ID encoding = ff ff ff ff ff ff ff 7f
Any Host
Decimal Notation = 2^56 - 2
Pip ID encoding = ff ff ff ff ff ff ff 7e
Any System
Decimal Notation = 2^56 - 3
Pip ID encoding = ff ff ff ff ff ff ff 7d
The above three well-known Pip IDs serve for functions such as "all
routers on a subnet", for instance in configuration algorithms such
as router discovery. Other well-known Pip IDs are expected to be
defined in the future.
4.5. Country Codes
While it is probably adequate to assign top-level Pip ID numbers
directly to organizations, there may be good reasons to assign them
to countries. One reason is that it reduces the administrative bur-
den on IANA for assigning top-level numbers to every possible organi-
zation. Another reason is that the number of organizations in the
world may be large enough that a layer of hierarchy above the organi-
zation is needed for such purposes as ID-to-name directory service
lookups.
Therefore, this specification has reserved a block of numbers for
country codes. The actual number values have not yet been assigned.
A consideration in assigning these numbers is whether the number
takes up one octet or two octets. A one octet number leaves more
room for further assignment, and is therefore more desirable. How-
ever, there are enough countries that not all of them can have a
one-octet top-level number (ISO 3166 lists 235 countries).
Pip WG, Expires July 1, 1993 [Page 8]
INTERNET-DRAFT Pip Identifiers January 1993
A reasonable approach to assigning these numbers, however, would be
to assign one-octet values to those countries with the largest Gross
National Produce (GNP) or population. CCITT assigns 1 or 2-digit
E.164 country codes to 47 countries (and 3-digit country codes to the
remaining countries), so it is probably reasonable to give the 47 or
so countries with the highest GNPs one-octet country codes, and
assign 2-octet codes to the remaining countries. (The 8 most popu-
lous nations are among the 40 nations with highest GNP.)
Therefore, this standard tentatively reserves top-level numbers 80 -
127 for those countries with the highest GNPs, and 128 - 316 for the
remaining countries.
4.6. CCITT and ISO assignments
The following top-level numbers are assigned to CCITT and ISO:
CCITT 10
ISO 11
Joint CCITT/ISO 12
5. Summary of Top-Level Pip ID Numbers
0 Reserved
1 IEEE 802
2 Locally Unique
3 and 4 CCITT E.164
5 to 9 Reserved
10 CCITT (other than E.164)
11 ISO
12 Joint CCITT/ISO
13 to 79 Reserved
80 to 316 Country Codes
317 to 16383 Reserved 2-octet
16384 to 2097151 Reserved 3-octet
2097151 to 2^56 - 4 Reserved other
2^56 - 3 to 2^56 - 1 Well-known IDs
Pip WG, Expires July 1, 1993 [Page 9]